import { getStoreMain } from '../../api/api.js';
import { getList } from '../../api/api.js';
import { getStoreInfo } from '../../api/api.js';
import { isCollect } from '../../api/api.js';
import { cancelCollectStore } from '../../api/api.js';
import { collectStore } from '../../api/api.js';
/**
 * 这个页面的逻辑是
 * 1 传递过来商家id
 * 2 根据商家id 查询出商家信息
 * 
 * 
 * **/ 

Page({

  /**
   * 页面的初始数据
   */
  data: {
    classIfyType: 0, //当前排序依据，0全部，1新品，2热品，3价格，4好评率
    sortPrice: 0, //当前价格排序方式
    showSearch:false,
    shopMsg: {
      
    },
    ani:'',
    goodsList: [],
    searchList:[],
    //这个id his mercherId 也就是商家id ，用来查询商家信息
    id:0,
    pageNum:2,
    // 这个id是用来取消收藏店铺的id，
    // 收藏的时候不需要使用id，
    // 取消收藏的时候需要使用这个id
    isCollect:false,
    // 搜索框输入的值
    searchValue:'',
    searchPage:1
  },

  imgError(e){
      console.log("图片错误----------",e);
  },

  // 绑定的input 事件
  searchInput(e){
     console.log(e.detail.value)
     this.setData({
        searchValue:e.detail.value
     })
  },


  //点击商品去往详情页面
  toDetail(e){
      console.log(e.currentTarget.dataset.id)
      // 获取到商品id
      let goodsId = e.currentTarget.dataset.id;
      wx.navigateTo({
        url: `/pages/goodsDetails/goodsDetails?id=${goodsId}`,
      })

  },



  // 点击搜索按钮去搜索
  toSearch(){
    const pages = getCurrentPages();
    const currentPage = pages[pages.length - 1];
    //这个id his mercherId 也就是商家id ，用来查询商家信息
       const id = currentPage.options.id;
       let value = this.data.searchValue;
       console.log(value);

       let data = {
          keyWords: value, //"搜索关键字"
          merchantId:id, //"商家id"
          currentPage:1, //"当前页码"
          pageSize:10
       }
      getList(data).then(res => {
        console.log(res.data.data);
        if (res.data.data.rows.length<1){
            wx.showToast({
              title: '什么都没有找到....',
              icon:'none'
            })

            return;
        }
        this.setData({
          searchList: res.data.data.rows,
          searchPage: ++this.data.searchPage
          
        })
        // 每次重新搜索成功都要把页码归0
        this.setData({
           searchPage:1
        })



      })

      console.log(this.data.searchPage)
  },


 
  //收藏店铺或取消
  changeAttention(e) { 
    let that = this
    if(!wx.getStorageSync('loginInfo').openid){
      wx.showToast({
        title: '您还没有登录哦！',
        icon:"none"
      })

      return;
   }
  
    if (!(this.data.isCollect)) {
      // 如果iscollect 存在那么已经收藏了
      //  发送请求去收藏店铺
      this.collectStore();
    } else {
       this.cancelCollectStore();
    
    }
  },

  // 点击搜索按钮跳转到搜索页面
  search(){
    console.log("查找")
    var animation = wx.createAnimation({
      duration: 500,
      timingFunction: 'ease',
    });
   
    if (this.data.showSearch){
      //  animation.opacity(1).translate(0,500).scale(1).step()
      this.setData({
        showSearch: !this.data.showSearch
      })


      animation.opacity(1).translate(0,0).scale(1).step()
      this.setData({
        ani: animation.export()
      })
    }else{
    
      animation.opacity(0.1).translate(0, -500).scale(0.1).step()
      this.setData({
        ani: animation.export()
      })
      setTimeout(() => {
        this.setData({
          showSearch: !this.data.showSearch
        })
      },300)
    }
  },




// 查询当前是不是收藏了这个店铺
// 
  isCollect(merchantId){
    //  请求成功之后获取是不是已经收藏了这个店铺
    let collect = {
      openId: wx.getStorageSync('loginInfo').openid,
      merchantId: merchantId  //商家id
    }

    console.log(collect)

    //查询是不是已经收藏了这个商品
    isCollect(collect).then(res => {
      console.log(res.data.data);
      // 如果已经收藏了那么返回id
      // 如果没有收藏返回false
      this.setData({
        isCollect: res.data.data
      })
    }) 
 },


  // 收藏店铺
  collectStore() {
    let data = {
      openId: wx.getStorageSync('loginInfo').openid,
      merchantId: this.data.id,
    }

    console.log(data);
    // 发送请求
    collectStore(data).then(res => {
      console.log(res);
      if (res.data.code == 200) {
        wx.showToast({
          title: '收藏成功',
        })
      } else {
        wx.showToast({
          title: res.data.msg,
          icon: 'none'
        })
      }
      //  设置收藏按钮的样式
      this.setData({
        isCollect: res.data.data
      })
    })
  },



  // 取消收藏商店
  cancelCollectStore() {
    let data = {
      openId: wx.getStorageSync('loginInfo').openid,
      id:this.data.isCollect,
      merchantId:this.data.id
    }
    console.log("cancel", data);
    cancelCollectStore(data).then(res => {
      console.log(res);
      if (res.statusCode == 200) {
        if (res.data.code == 200) {
          this.setData({
            isCollect: false
          })
        }

        wx.showToast({
          title:'取消成功',
        })
      } else {
        wx.showToast({
          title: "网络错误请重试....",
          icon: 'none'
        })
      }
    })
  },



// 获取店铺的信息
  getStoreInfo(id){
    console.log(id+"00000")
    getStoreInfo(id).then(res=>{
        console.log(res);
        this.setData({
           shopMsg:res.data.data
        })
    })
  },





  changeClassify(e) { //改变排序方式
    // 初始化那个 页码，因为每次改变一个页码都要从
    // 0 开始加载页面 
      let that = this
      this.setData({
        classIfyType: e.currentTarget.dataset.id,
        pageNum:1
        
      })

      let flag = e.currentTarget.dataset.id;
      console.log(flag,"flag")
      // 如果flag =0 那么是点击的全部，这个使用的接口和后面的不一样
      if(flag == 0){
        let data = {
          id:this.data.id,
          pageSize: 10,
          pageNum:1
        }
        //获取第一个分类全部列表的请求
        // 因为他第一个列表和之后的列表的请求不是使用的同一个地址请求
        getStoreMain(data).then(res => {
          console.log(res,"获取到的数据----------------");
          if(res.data.data.rows.length<1){
             wx.showToast({
               title: '什么都没有哦',
               icon:'none'
             })

             return;
          }

          this.setData({
            goodsList: res.data.data.rows,
            pageNum:++this.data.pageNum
          })
        })
        return;
      }

      // 定义param 下面的三种情况都是使用的param 参数，使用的是同一个
      // 接口，只是参数的值不同
      //每次点击排序必然是第一页开始
      
      let param = {
        merchantId: this.data.id,
        sort: flag,
        pageSize:10,
        currentPage:1
      }


      if(flag == 2){
          // 那么是按照价格排序

          // 判断是不是第二次点击价格按钮
          if(this.data.classIfyType == 2){
              // classIfyType的值已经是2了，现在又点击一次
              // 那么说明是第二次点击或者更多次
              // 这个、时候改变price 的值
              // 如果是0那么变成1
              // 如果是1那么变成0
              if(this.data.sortPrice == 0){
                this.setData({
                  sortPrice:1, //当前价格排序方式
                })
              }else{
                this.setData({
                  sortPrice: 0, //当前价格排序方式
                })
              }


              // 改变param参数的值
              param.price = this.data.sortPrice;
          }else{
              // 第一次点击使用sortprice 默认值
              param.price = this.data.sortPrice;

          }
      }else{
          //没有点击价格排序按钮
          // 什么都不做，直接使用param 初始的值去发送请求

      }
    // console.log(this.data.classIfyType);
    // 从新发送请求传递不同的参数
   
        console.log(param);
        getList(param).then(res=>{
          console.log(res.data.data);
          this.setData({
              goodsList:res.data.data.rows,
              pageNum:++this.data.pageNum
          })
        })
  },
  

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
    const pages = getCurrentPages();
    const currentPage = pages[pages.length - 1];
    //这个id his mercherId 也就是商家id ，用来查询商家信息
    const id = currentPage.options.id;
    if(id == this.data.id)return;
    console.log("执行onshow方法")
    // 如果还是这个id 的话说明店铺没有换，那么不要重新请求了
    // console.log("id"+id);
    // 保存店铺id
    this.setData({
       id:id
    })

    let data = {
       id,
       pageSize:10,
       pageNum:1
    }
     console.log(data,"主页")

    //获取第一个分类全部列表的请求
    // 因为他第一个列表和之后的列表的请求不是使用的同一个地址请求
    getStoreMain(data).then(res => {
      console.log(res);
      if (res.data.data.rows.length < 1){
        wx.showToast({
          title: '什么都没有哦',
          icon: 'none'
        })

        return;
      }
      this.setData({
        goodsList:res.data.data.rows
      })
    })
    // 获取商家信息
    this.getStoreInfo(id);

    // 查询当前是不是已经收藏了这个店铺
    this.isCollect(id);
  },


  // 上拉加载更多
  getMore(){
    console.log("普通页码是"+this.data.pageNum,"搜索页面的页码是"+this.data.searchPage);

    if(this.data.showSearch == true){
      //在搜索页面
      console.log("搜索页面")
      const pages = getCurrentPages();
      const currentPage = pages[pages.length - 1];
      //这个id his mercherId 也就是商家id ，用来查询商家信息
      const id = currentPage.options.id;
      let value = this.data.searchValue;
      console.log(value);

      let data = {
        keyWords: value, //"搜索关键字"
        merchantId: id, //"商家id"
        currentPage: this.data.searchPage, //"当前页码"
        pageSize: 10
      }
      getList(data).then(res => {
        console.log(res.data.data);
         //如果没有数据那么停止执行 
         if(res.data.data.rows.length<1){
             wx.showToast({
               title: '没有更多啦',
               icon:'none'
             })

             return;
         }
        let searchList = this.data.searchList;
        searchList = searchList.concat(res.data.data.rows);
        this.setData({
          searchList: searchList
        })

        // 页码加一
        this.setData({
          searchPage:++this.data.searchPage
        })
      })

    }else{
      // 在普通列表
      // 因为获取全部的接口和获取后边的接口不是同一个接口
      // 所以要判断使用哪个接口
      // 说明是点击了加载全部的那个按钮
      if (this.data.classIfyType == 0) {
        let data = {
          id: this.data.id,
          pageSize: 10,
          pageNum: this.data.pageNum
        }
        getStoreMain(data).then(res => {
          console.log(res);
          if (res.data.data.rows.length < 1) {
            wx.showToast({
              title: '没有更多数据啦',
              icon: 'none'
            })
          }
          let goods = this.data.goodsList;
          goods = goods.concat(res.data.data.rows)
          this.setData({
            goodsList: goods
          })
          // 页码加一
          this.setData({
            pageNum: ++this.data.pageNum
          })

          console.log(this.data.pageNum,"---------------当前页码")
        })
      } else {
        let param = {
          merchantId: this.data.id,
          sort: this.data.classIfyType,
          currentPage:this.data.pageNum,
          pageSize:10
        }
        console.log(param);
        getList(param).then(res => {
          if (res.data.data.rows.length < 1) {
            wx.showToast({
              title: '没有更多数据啦',
              icon: 'none'
            })
          } else {
            console.log(res.data.data);
            let goods = this.data.goodsList;
            goods = goods.concat(res.data.data.rows);
            this.setData({
              goodsList: goods
            })

            //页码加一
            this.setData({
              pageNum: ++this.data.pageNum
            })
          }
        })
      }
       
    }
  },


  // 点击分类标题重新搜索
  // 当点击第一个的时候（全部），也是默认页面
  // 调用本地onshow 方法进行刷新就行了。




  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {
        //页面隐藏初始化数据
        // this.setData({
        //   classIfyType: 0, //当前排序依据，0全部，1新品，2热品，3价格，4好评率
        //   sortPrice: 0, //当前价格排序方式
        //   showSearch: false,
        //   shopMsg: {

        //   },
        //   ani: '',
        //   goodsList: [],
        //   searchList: [],
        //   //这个id his mercherId 也就是商家id ，用来查询商家信息
        //   // id: 0,
        //   pageNum: 2,
        //   // 这个id是用来取消收藏店铺的id，
        //   // 收藏的时候不需要使用id，
        //   // 取消收藏的时候需要使用这个id
        //   isCollect: false,
        //   // 搜索框输入的值
        //   searchValue: '',
        //   searchPage: 1

        // })
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options)

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },


  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */

  onShareAppMessage: function() {
    return {
      title: '转发',
      path:'',
      success: function (res) {
        console.log('成功', res)
      }
    }
  }



})